A cloud system has been popular as a new paradigm of system deployment. Its utility computing mode allows tenants to build their own infrastructures on-demand and use them in a pay-as-you-go manner. In cloud systems, requests for resource in computing, storage and networking are served by underlying physical infrastructures in data centers managed by service providers. It has been an enduring challenge to effectively reduce the cost in serving tenant requests with a minimum number of system resources while preserving the service level.
In other words, the scheduling of computing, storage, and networking resources is one of the most fundamental challenges for large scale infrastructures such as could systems. Currently, an off-the-shelf resource management system usually implements the scheduling functionality with a single scheduling strategy. Due to various reasons, the current management system is prone to sub-optimal or even poor-quality resource allocation.